#pragma once
#include "Aquarium.h"
#include "Button.h"
#include "Observer.h"

class Controller {

public:
	Controller(Aquarium* aquarium);
	~Controller();
	Controller(const Controller& controller);
	const Controller& operator=(const Controller& controller);

	// controller methods
	void setObserever(Observer* obs);
	void removeObeserver(Observer* obs);

	void feed();
	void empty();
	void pause();
	void debug();


protected:

	Aquarium *aquarium;

	// subjects for the Observer design pattern
	Button addFishButton;
	Button removeFishButton;
	Button feedButton;
	Button emptyButton;
	Button pauseButton;
	Button debugButton;
};